package com.ht.api.call.func.impl;

import com.ht.api.bean.AjaxResult;
import com.ht.api.bean.LoginBean;
import com.ht.api.call.func.IFunctionCall;
import com.ht.api.db.exception.HtException;
import com.ht.api.util.ParamParser;

import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONException;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import lombok.extern.slf4j.Slf4j;

/**
 * 解析api参数
 * @author asq
 * @createTime 2025年1月19日 09:21:33
 */
@Slf4j
public class ApiParseFunctionCall implements IFunctionCall {

	@Override
	public String getName() {
		return "解析api参数";
	}

	@Override
	public JSONObject execute(LoginBean me, JSONObject param, AjaxResult result) {
		// 获取参数
		String paramText = param.getStr("paramText");
		String jsonExample = param.getStr("jsonExample");
		jsonExample = jsonExample.replace("，", ",").replace("：", ":").replace("“", "\"");
		
		// 解析
		ParamParser parser = new ParamParser();
		JSONArray params = null;
		try {
			params = parser.parseParams(paramText, jsonExample);
		} catch (JSONException e) {
			throw new HtException("json格式不对~");
		}
		
		// 包装成JSONObject对象
		JSONObject json = JSONUtil.createObj();
		json.set("result", params);
		return json;
	}

}
